#pragma once

// select compiler:
// TODO: version check
#if defined _MSC_VER
#	define RZ_COMPILER_MSVC
#elif defined __GNUC__
#	define RZ_COMPILER_GCC
#else
#	error "Unsupported compiler"
#endif

// suppress msvc warnings
#ifdef RZ_COMPILER_MSVC
#	pragma warning(disable : 4530)		// Suppress warnings when compiling without exceptions.
#	pragma warning(disable : 4714)		// Suppress warnings about __forceinline
#	pragma warning(disable : 4201)		// Suppress warning 'nonstandard extension used : nameless struct/union'
#	pragma warning(disable : 4100)		// Suppress warning '$initVBases' : unreferenced formal parameter.
// Maybe bug of MSVC++ Nov CTP
#	pragma warning(disable : 4250)		// warning C4250: 'class1' : inherits 'class2::member' via dominance
#	pragma warning(disable : 4505)		// 'function' : unreferenced local function has been removed
// (unreferenced static local function)
#	define _CRT_SECURE_NO_WARNINGS
#endif

// enable gcc's wchar_t extensions
#ifdef __STRICT_ANSI__
#	undef __STRICT_ANSI__ 
#endif


